package com.cdp;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.devtools.DevTools;
import org.openqa.selenium.devtools.Event;

import java.io.File;

public class CDPEventListenerDemo {

    public static void main(String[] args) {
        // 设置 Chrome Driver 路径
        String path = "C:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe";
        System.setProperty("webdriver.chrome.driver", path);

        // 创建 ChromeOptions 对象并启用 CDP
        ChromeOptions options = new ChromeOptions();
        options.addExtensions(new File("d:\\1.crx"));

//        options.addArguments("--remote-allow-origins=*");
//        options.addArguments("--disable-gpu");//谷歌文档提到需要加上这个属性来规避bug
//        options.addArguments("--no-sandbox");// “–no - sandbox”参数是让Chrome在root权限下跑
//        options.addArguments("--disable-dev-shm-usage");
//        options.addArguments("lang=zh_CN.UTF-8");
        // 创建 ChromeDriver 实例，并传入 ChromeOptions
        WebDriver driver = new ChromeDriver(options);

        // 获取 DevTools 实例
        DevTools devTools = ((ChromeDriver) driver).getDevTools();

        // 启用 Input 和 EventListeners 域
        devTools.createSession();
        // 注册鼠标点击事件监听器
//        devTools.addListener(new Event<>("Page.loadEventFired",input -> {return input;}), event -> {
//                    System.out.println("鼠标点击事件：" + event);
//            });
        // 打开网页
        driver.get("https://www.baidu.com");

//        try {
//            Thread.sleep(10000L);
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        }

    }
}
